Skip to content

Add staged inter-distance propagation with variable separation - #247

Open
zayenz wants to merge 12 commits into
feature/min-distancefrom
feature/inter-distance
Open

zayenz wants to merge 12 commits into
feature/min-distancefrom
feature/inter-distance

Conversation

@zayenz

@zayenz zayenz commented Oct 3, 2026 •

Copy link
Copy Markdown
Member

Add inter-distance constraints enforcing |x[i] - x[j]| >= p for a constant or variable separation.

IPL_BASIC uses an O(n log n), linear-space feasibility algorithm and tightens a variable separation's upper bound. Other propagation levels add staged quadratic bounds(Z) filtering. Separation one uses the existing bounds-consistent distinct propagator; domains with holes use interval supports.

The implementation follows Garey et al., Quimper et al., and the variable-distance extension.

Uses the existing Gecode integer test harness for assignment, search, cloning, and consistency checks, with targeted propagation and posting regressions. Removes the separate enumeration oracle and exhaustive/random sweeps.

Stacked on #249; merge order is #238, #249, then #247.

Validation: Release build passed, all 37 interdistance tests passed with two iterations, and all 447 combined check tests passed. Changelog and whitespace checks passed.

@zayenz
zayenz marked this pull request as ready for review October 4, 2026 11:48

@zayenz zayenz left a comment •

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

  • Combined filter preparation and pruning. The sole caller no longer has to perform a separate initialization step.
  • Documented the dual links encoding and the adjustment cursor owned by each live bound-group representative.

@zayenz
zayenz force-pushed the feature/inter-distance branch from 1c3de8a to 6f15b91 Compare October 8, 2026 15:15
@zayenz
zayenz force-pushed the feature/inter-distance branch from 6f15b91 to b83ab14 Compare October 9, 2026 13:51
@zayenz
zayenz changed the base branch from main to feature/min-distance October 9, 2026 13:51
@zayenz
zayenz added this pull request to stack #254 October 10, 2026 18:20

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant